<!--
 * @LastEditors: 七七
 * @Date: 2023-01-11 11:12:35
-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>arguments</title>
</head>

<body>
  <script>
    // 在调用函数时，浏览器每次都会传递两个隐含的参数：
    // 1.函数的上下文对象this，
    // 2.封装实参的对象arguments
    // arguments是一个类数组对象,它也可以通过索引来操作数组，也可以获取长度。
    // 在调用函数时，我们所传递的实参都会在arguments中保存.
    // arguments.length可以用来获取实参的长度
    // 不定义形参，也可以通过arguments来使用实参 arguments[索引]
    // arguments.callee,这个属性对应一个函数对象，就是当前正在指向的函数对象
    function fun() {
      console.log(arguments); //Arguments{}
      console.log(Array.isArray(arguments)); //false
      console.log(arguments instanceof Array); //false
      console.log(arguments.length);
      console.log(arguments[0]); //hello
      console.log(arguments.callee); //function fun(){}
    }
    fun('hello', true)
  </script>
</body>

</html>